#include "../head.h"

template <typename key>
struct hashed
{
    void operator()(key x) const
    {
        cout << "Generalization " << endl;
        cout << x << endl;
    }
};

template<>
struct hashed <int>
{
    void operator()(int x) const
    {
        cout << "Specialization " << endl;
        cout << x << endl;
    }
};

int main()
{
    hashed<double>()(100);
    hashed<int>()(10);
}
